package com.wzdigit.wms.wms.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class SkuDTO implements Serializable{

    private static final long serialVersionUID = 1L;
    /**
     * 货品ID
     */
    @ApiModelProperty(value = "货品ID", required = true)
    private Integer skuId;

    /**
     * 货品代码
     */
    @ApiModelProperty(value = "货品代码", required = true)
    private String skuCode;

    /**
     * 货主，客户主数据中 客户类型=货主，取客户ID
     */
    @ApiModelProperty(value = "货主，客户主数据中 客户类型=货主，取客户ID", required = false)
    private Integer owner;

    /**
     * 货品类别ID
     */
    @ApiModelProperty(value = "货品类别ID", required = true)
    private Integer skuCateId;

    /**
     * 货品短码
     */
    @ApiModelProperty(value = "货品短码", required = false)
    private String shortCode;

    /**
     * 货品中文描述
     */
    @ApiModelProperty(value = "货品中文描述", required = true)
    private String descCn;

    /**
     * 货品英文描述
     */
    @ApiModelProperty(value = "货品英文描述", required = false)
    private String descEn;

    /**
     * 规格
     */
    @ApiModelProperty(value = "规格", required = false)
    private String spec;

    /**
     * 产品型号
     */
    @ApiModelProperty(value = "产品型号", required = false)
    private String model;

    /**
     * 商品码
     */
    @ApiModelProperty(value = "商品码", required = false)
    private String commodityCode;

    /**
     * 物料组
     */
    @ApiModelProperty(value = "物料组", required = false)
    private String matGroup;

    /**
     * 外部物料组
     */
    @ApiModelProperty(value = "外部物料组", required = false)
    private String extMatGroup;

    /**
     * 基本计量单位
     */
    @ApiModelProperty(value = "基本计量单位", required = true)
    private String baseUnit;

    /**
     * 采购订单计量单位
     */
    @ApiModelProperty(value = "采购订单计量单位", required = false)
    private String poUnit;

    /**
     * 单位组ID
     */
    @ApiModelProperty(value = "单位组ID", required = false)
    private Integer unitGroupId;

    /**
     * 重量单位
     */
    @ApiModelProperty(value = "重量单位", required = false)
    private String weightUnit;

    /**
     * 体积单位
     */
    @ApiModelProperty(value = "体积单位", required = false)
    private String cubeUnit;

    /**
     * 毛重
     */
    @ApiModelProperty(value = "毛重", required = false)
    private BigDecimal grossWeight;

    /**
     * 皮重
     */
    @ApiModelProperty(value = "皮重", required = false)
    private BigDecimal tare;

    /**
     * 净重
     */
    @ApiModelProperty(value = "净重", required = false)
    private BigDecimal netWeight;

    /**
     * 长
     */
    @ApiModelProperty(value = "长", required = false)
    private BigDecimal length;

    /**
     * 宽
     */
    @ApiModelProperty(value = "宽", required = false)
    private BigDecimal width;

    /**
     * 高
     */
    @ApiModelProperty(value = "高", required = false)
    private BigDecimal height;

    /**
     * 体积
     */
    @ApiModelProperty(value = "体积", required = false)
    private BigDecimal cube;

    /**
     * 价格
     */
    @ApiModelProperty(value = "价格", required = false)
    private BigDecimal price;

    /**
     * 有效期
     */
    @ApiModelProperty(value = "有效期", required = false)
    private Integer validityPeriod;

    /**
     * 湿敏等级
     */
    @ApiModelProperty(value = "湿敏等级", required = false)
    private String msl;

    /**
     * 特殊采购
     */
    @ApiModelProperty(value = "特殊采购", required = false)
    private String specialPurchase;

    /**
     * KeyPart类型
     */
    @ApiModelProperty(value = "KeyPart类型", required = false)
    private String keyPartType;

    /**
     * 最小标包
     */
    @ApiModelProperty(value = "最小标包", required = false)
    private BigDecimal stdPkgQty;

    /**
     * 条码管控类型：枚举类型：单品、批次
     */
    @ApiModelProperty(value = "条码管控类型：枚举类型：单品、批次", required = false)
    private Integer barcodeControl;

    /**
     * 条码解析方式：枚举类型：序号范围解析，条码解析
     */
    @ApiModelProperty(value = "条码解析方式：枚举类型：序号范围解析，条码解析", required = true)
    private Integer barcodeParser;

    /**
     * OEM物品
     */
    @ApiModelProperty(value = "OEM物品", required = false)
    private Integer isOem;

    /**
     * 默认供应商ID
     */
    @ApiModelProperty(value = "默认供应商ID", required = false)
    private Integer defaultVendorId;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名1", required = false)
    private String alternateSku1;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名2", required = false)
    private String alternateSku2;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名3", required = false)
    private String alternateSku3;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名4", required = false)
    private String alternateSku4;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名5", required = false)
    private String alternateSku5;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组1", required = false)
    private String skuGroup1;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组2", required = false)
    private String skuGroup2;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组3", required = false)
    private String skuGroup3;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组4", required = false)
    private String skuGroup4;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组5", required = false)
    private String skuGroup5;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组6", required = false)
    private String skuGroup6;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组", required = false)
    private String skuGroup7;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组", required = false)
    private String skuGroup8;

    /**
     * 产品组
     */
    @ApiModelProperty(value = "产品组", required = false)
    private String skuGroup9;

    /**
     * 来源方式  ERP同步/手动导入
     */
    @ApiModelProperty(value = "来源方式  ERP同步/手动导入", required = false)
    private String dataSource;

    /**
     * 是否启用
     */
    @ApiModelProperty(value = "是否启用", required = true)
    private Integer isEnabled;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", required = false)
    private String comments;

    /**
     * 用户自定义字段1（货品类别名称-输出）
     */
    @ApiModelProperty(value = "用户自定义字段1（货品类别名称-输出）", required = false)
    private String udf1;

    /**
     * 用户自定义字段2（单位组名称-输出）
     */
    @ApiModelProperty(value = "用户自定义字段2（单位组名称-输出）", required = false)
    private String udf2;

    /**
     * 用户自定义字段3（默认供应商名称-输出）
     */
    @ApiModelProperty(value = "用户自定义字段3（默认供应商名称-输出）", required = false)
    private String udf3;

    /**
     * 用户自定义字段4（条码管控类型：单品、批次）
     */
    @ApiModelProperty(value = "用户自定义字段4（条码管控类型：单品、批次）", required = false)
    private String udf4;

    /**
     * 用户自定义字段5（条码解析方式：序号范围解析，条码解析）
     */
    @ApiModelProperty(value = "用户自定义字段5（条码解析方式：序号范围解析，条码解析）", required = false)
    private String udf5;

    /**
     * 用户自定义字段6（货主名称输出）
     */
    @ApiModelProperty(value = "用户自定义字段6（货主名称输出）", required = false)
    private String udf6;
}
